package functional.closure;

/**
 * @ClassName SharedStorage
 * @PackageName functional.closure
 * @projectName myThread
 * @Description 
 * @Author games
 * @Date 2025/8/27 下午1:24
 * @Version 1.0
 */

import java.util.function.*;

public class SharedStorage {
    public static void main(String[] args) {
        Closure4 c1 = new Closure4();
        IntSupplier f1 = c1.makeFun(0);
        IntSupplier f2 = c1.makeFun(0);
        IntSupplier f3 = c1.makeFun(0);
        /**
         * i 的这种用法并非是个大难题，因为对象很可能在你调用 makeFun() 之后就存在了——实际上，被现存函数以这种方式绑定的对象，垃圾收集器肯定会保留5。
         *  当然，如果你对同一个对象多次调用 makeFun() ，你最终会得到多个函数，它们共享 i 的存储空间：
         */
        System.out.println(f1.getAsInt());
        System.out.println(f2.getAsInt());
        System.out.println(f3.getAsInt());
    }

}


